package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.SyncTask;
import com.ruoyi.system.domain.vo.DbInfo;
import com.ruoyi.system.domain.vo.TableInfo;

/**
 * 同步任务Service接口
 * 
 * @author ruoyi
 */
public interface ISyncTaskService 
{
    /**
     * 查询同步任务
     * 
     * @param syncId 同步任务ID
     * @return 同步任务
     */
    public SyncTask selectSyncTaskById(Long syncId);

    /**
     * 查询同步任务列表
     * 
     * @param syncTask 同步任务
     * @return 同步任务集合
     */
    public List<SyncTask> selectSyncTaskList(SyncTask syncTask);

    /**
     * 新增同步任务
     * 
     * @param syncTask 同步任务
     * @return 结果
     */
    public int insertSyncTask(SyncTask syncTask);

    /**
     * 修改同步任务
     * 
     * @param syncTask 同步任务
     * @return 结果
     */
    public int updateSyncTask(SyncTask syncTask);

    /**
     * 批量删除同步任务
     * 
     * @param syncIds 需要删除的同步任务ID
     * @return 结果
     */
    public int deleteSyncTaskByIds(Long[] syncIds);

    /**
     * 删除同步任务信息
     * 
     * @param syncId 同步任务ID
     * @return 结果
     */
    public int deleteSyncTaskById(Long syncId);
    
    /**
     * 执行同步任务
     * 
     * @param syncId 同步任务ID
     * @return 结果
     */
    public boolean runSyncTask(Long syncId);
    
    /**
     * 获取服务器的数据库列表
     * 
     * @param serverId 服务器ID
     * @return 数据库列表
     */
    public List<DbInfo> getDbList(Long serverId);
    
    /**
     * 获取数据库的表列表
     * 
     * @param dbId 数据库ID
     * @return 表列表
     */
    public List<TableInfo> getTablesByDb(String dbId);
} 